package ar.edu.unq.tpi.labso.rochi.agendaRochi.Wicket.apliccion;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import model.Aplicacion.Agenda;

import org.apache.wicket.markup.repeater.data.IDataProvider;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;

import simulaPersistencia.ContactoHome;
import clasesPrincipales.Contacto;

public class ContactoDatProvider implements IDataProvider<Contacto> {
	public ContactoDatProvider(){
		this.guardador = ((ContactoHome)Agenda.getHome(Contacto.class)).buscarTodos();
	}
	
	private static final long serialVersionUID = 1L;
	private List<Contacto>guardador;
	private Contacto seleccionado;
	
	
	public void setSeleccionado(Contacto seleccionado) {
		this.seleccionado = seleccionado;
		
	}

	public Contacto getSeleccionado() {
		return seleccionado;
	}

	public void detach() {}

	public void agregar(Contacto example){
		((ContactoHome)Agenda.getHome(Contacto.class)).agregar(example);
		guardador= ((ContactoHome)Agenda.getHome(Contacto.class)).buscarTodos();
	}
	public void editar(Contacto example) {
		((ContactoHome)Agenda.getHome(Contacto.class)).actualizar(example);
		
		guardador= ((ContactoHome)Agenda.getHome(Contacto.class)).buscarTodos();
	}
	
	public void buscar(Contacto example){
		guardador= ((ContactoHome)Agenda.getHome(Contacto.class)).buscarByExample(example);
	}
	public Iterator<Contacto> iterator(int arg0, int arg1) {
		/* Lista de resultados */
		List<Contacto>resultados = new LinkedList<Contacto>();
		for(int i= arg0 ; i<arg1; i++){
			resultados.add(guardador.get(i));
		}
		return resultados.iterator();
		
	}

	public int size() {
		/* CUabtos elementos hay, en la busqueda actual */
		
		return guardador.size();
	}

	public IModel<Contacto> model(Contacto arg0) {
		/* Nodelo de un contacto */
		return new CompoundPropertyModel<Contacto>(arg0);
	}
	public List<Contacto> getGuardador(){
		return this.guardador;
	}


}
